Collaborative editing of a document

ABSTRACT

Disclosed is a method, apparatus and computer program for a first client to facilitate collaborative editing of a document with a second client. The document contains data of a first data type and is accessible by a first application for processing the first data type. The first application is used to identify a portion of the document for review, The identified portion is extracted and provided to an application for processing data of a second type at the first client. This application is a messaging application. A second client is identified for performing the review and the identified portion is sent via the messaging application to the identified second client. Comments are received back from the identified second client and these comments conform to the messaging application&#39;s protocol. The comments are then interpreted back at the first client and the document is updated if appropriate.

PRIORITY CLAIM

The present application claims priority to Great Britain PatentApplication No. 0523703.7, filed Nov. 22, 2005, the entire disclosure ofwhich is hereby incorporated by reference.

FIELD OF THE INVENTION

The invention relates to collaborative editing of a document.

BACKGROUND OF THE INVENTION

In today's society, there is frequently a need for users to collaboratein the production of their work. In the past, such collaboration wasdone using mechanisms such as meetings, the telephone and email. Morerecently instant messaging applications have proved to be another usefulmeans by which collaboration can take place.

Such mechanisms however still require coordination of various users'suggestions and integration of accepted suggestions into an originaldesign, document, presentation etc.

One option is to share the document with multiple users (e.g. via emailor a shared repository such as that made available via Lotus Notes) andto use a facility such as “track changes” in Microsoft Word. Suchcollaborative working however involves each user loading the entirecontents of the document on their machine and editing it in a suitableeditor that has to be installed on the user's computer. For example Worddocuments are edited using Microsoft Word.

In addition to the examples given above, a number of companiesfacilitate the whole process with specially designed collaborativeediting software.

For example, the MoonEdit program permits multiple editors to work on adocument simultaneously, with each editor being assigned a differentcolour.

Microsoft(R) also provides Server Extensions for its Office suite whichprovide collaborative functionality. Users can publish their documentsvia the web and use inline discussions to discuss ideas within thecontext of a document itself. This is discussed by the Xhost company aspart of their Microsoft Office FAQs.

Conferral also provide collaborative editing software. According totheir press release, a document owner invites participants to join inthe review process. Such software can be integrated on the inviter sidewithin Microsoft Office. Having accepted the invitation, an invitee isprovided with a secure connection back to the inviter's PC. Conferraladvertise this software as needing no special editing software at theinvitee end—all that is required is a web browser and Java™functionality. (Java and all Java-based trademarks and logos aretrademarks of Sun Microsystems, Inc. in the United States, othercountries, or both.)

Such screen sharing software however tends to be relatively heavyweight. The user needs to remain connected to the inviter's PC and toreceive frequent screen updates reflecting the entire document as usersmake concurrent edits. Such processing is network intensive. There isalso a security risk incurred by sharing one's screen with anotheruser—such software provides the other user with machine access.

SUMMARY OF THE INVENTION

According to a first aspect, there is provided a method for a firstclient to facilitate collaborative editing of a document with a secondclient, the document containing data of a first data type and beingaccessible by a first application for processing said first data type,the method comprising: using the first application to identify a portionof the document for review; extracting the identified portion; providingthe identified portion to an application for processing data of a secondtype at the first client, the application being a messaging application;identifying a second client for performing the review; sending theidentified portion via the messaging application to the identifiedsecond client; receiving comments back from the identified secondclient, the comments conforming to the messaging application's protocol;interpreting the comments; and updating the document if appropriate.

Preferably the comments received back from the identified second clientcomprise text suggested as a replacement for the identified portion.Such suggested text may be enclosed by delimiters which can be used todistinguish suggested text from actual comments.

In a preferred embodiment, it is then determined whether to accept thesuggested text as a replacement for the identified portion. This maytake the form of receiving an indication from a user of the firstclient.

Once the text has been accepted, the second client is preferablyinformed of this fact.

If the text is not accepted, further collaboration with the identifiedsecond client is permitted.

In accordance with a preferred embodiment, an indication may be receivedfrom a user of the first client that a previous version of the text hasbeen accepted. This previous version may be the original text formingthe identified version or a subsequent version.

Once a previous version has been accepted, the second client ispreferably informed of this.

When the suggested text from the second client is accepted, the commentsare preferably parsed to identify this text. This text is thenpreferably extracted and used to replace the identified portion with thesuggested text.

Where further collaboration takes place with the second client, commentsoriginating from both the first and second clients are preferablyinterpreted to identify text to replace the identified portion.

This preferably involves parsing the comments to identify the mostrecent version of text suggested as a result of the collaboration toreplace the identified portion or to identify a first client userselected version of text suggested by one of the clients to replace theidentified portion. Such text can then be extracted and used to replacethe identified portion.

In one embodiment, it may be the second client's decision as to whattext should be used to replace the identified portion.

In a preferred embodiment, the messaging application is an instantmessaging application.

According to a second aspect, there is provided an apparatus for a firstclient to facilitate collaborative editing of a document with a secondclient, the document containing data of a first data type and beingaccessible by a first application for processing said first data type,the apparatus comprising: means for using the first application toidentify a portion of the document for review; means for extracting theidentified portion; means for providing the identified portion to anapplication for processing data of a second type at the first client,the application being a messaging application; means for identifying asecond client for performing the review; means for sending theidentified portion via the messaging application to the identifiedsecond client; means for receiving comments back from the identifiedsecond client, the comments conforming to the messaging application'sprotocol; means for interpreting the comments; and means for updatingthe document if appropriate.

According to a third aspect, there is provided a computer programcomprising program code means adapted to perform the method of the firstaspect when said program is run on a computer.

BRIEF DESCRIPTION OF THE DRAWINGS

A preferred embodiment of the invention will now be described, by way ofexample only, and with reference to the following drawings:

FIGS. 1 a to 1 e illustrate possible screen shots of a system includinga preferred embodiment of the present invention;

FIG. 2 shows a component diagram in accordance with a preferredembodiment of the present invention; and

FIGS. 3 a to 3 c illustrate the processing of the present invention inaccordance with a preferred embodiment.

DETAILED DESCRIPTION OF THE INVENTION

Disclosed is a mechanism for collaborative editing of documents. Such amechanism is discussed with reference to FIGS. 1 to 3. These figuresshould all be read in conjunction with one another.

For ease of explanation only, the invention will be described in termsof a word processing document being collaboratively edited by twoparties, Alice and Bob. It should however be appreciated that theinvention is not limited to a word processing system, but is equallyapplicable to other kinds of documents such as spreadsheets,presentations etc.

As shown in FIG. 1 a, Alice's computer runs a word processor 10. Thiscould, for example, be Microsoft(R) Word. The dotted lines in the figurerepresent the text of a document that Alice is currently working on.

In the process of writing the document, Alice desires to consult Bob ona portion of text designated for ease of understanding as “provisionaltext” 20. Alice selects the relevant text using text selector component100 (step 300) and right clicks on the text to bring up a menu 30 (step310). The menu is displayed using menu display component 110. It will beappreciated that steps 300 and 310 are already possibly in wordprocessing applications today. These functions will not therefore bedescribed in any more detail.

In the case of the preferred embodiment, the menu 30 displayed has anadditional option of “Confer” 31. This option is selected to initiatethe collaboration process at step 320 using confer selector component120.

Upon selection of the confer option, instant messaging component 140 islaunched on Alice's computer (step 330). FIG. 1 b illustrates anexemplary screen shot. Windowing component 220 is responsible for this.It will be appreciated that the instant messaging component dialogue boxlooks very similar to that provided by traditional instant messagingsoftware. The differences will now however be discussed.

A conversation window 60 of the type common in such software isprovided. The main difference here is that this window also includes theprovisional text 20 selected at step 300. Text Extractor and Formattercomponent 130 extracts the selected provisional text 20 using anoperation similar to the known “cut” word processing operation. The textis placed on a clipboard (not shown) and is then formatted by component130 to include enclosing delimiters <<provisional text >> (step 340).Component 130 then retrieves the text from the clipboard and provides itto the instant messaging component's conversation displayer component230 (step 350). Component 230 “pastes” the reformatted provisional textinto conversation window 60.

The instant messaging component also has a dialogue box 40 with a Nameinput field 50 The name field provides access to a drop down list ofpossible conferees. Such a list is preferably drawn from Alice'sstandard instant messaging buddy list 210. As with traditional instantmessaging, if Bob is not online, his name is preferably “greyed out”(not selectable). Of course, instead of a drop down list, a standardinstant messaging selection interface could be employed.

Name selector component 200 permits Alice to select a buddy to conferwith. In this example, Alice selects Bob from her buddy list.

Conversation accepting component 250 then receives comments to associatewith the provisional text 20 at step 380. Such comments are typed intowindow 70 as per a normal instant message. In the example of FIG. 1 b,the provisional text is a title and the comments typed into window 70 byAlice might ask Bob for his opinion of the title. Alice then presses thesend button 75 to transmit both the provisional text and the associatedcomments to Bob (step 390). Transmission of this information is achievedby sender component 240.

In the meantime, Alice's conversation window is updated (step 400) byconversation displayer component 230 such that Alice's conversationwindow includes the provisional text and associated comments sent to Bob(see for example FIG. 1 d).

Bob's computer preferably hosts a similar instant messaging component.FIG. 1 c illustrates a screen shot of what is displayed on Bob'scomputer. Standard instant messaging componentry receives theprovisional text and associated comments from Alice and displays thesein conversation window 60.

Bob is now able to review the provisional text and associated commentsto determine whether any changes are required. Bob may type any suchchanges into input window 70.

Input received by window 70 may include comments (e.g. “This is mypreferred title”) and also new text. In the preferred embodiment, Bobplaces any new text inside delimiters <<new text >> in order todifferentiate his comments from suggested text.

The information is then sent to Alice when Bob hits the send button 75.

The information is received on Alice's computer by conversationdisplayer component 230 and the conversation window 60 is updated atstep 410. Alice's updated conversation window 60 is illustrated in FIG.1 d.

Alice then has the choice of whether or not to accept Bob's suggestions(step 420). If Alice wants to discuss the provisional text in moredetail, then they both collaborate further. This is depicted via singlestep 430. It will be appreciated that such collaboration involves atypical instant messaging conversation, but with any suggestion for newtext properly delimited as described earlier.

At some point Alice will decide to accept the text collaborativelyarrived at step 420. At this point, she indicates as much to Bob viastep 440 using conversation accepting component 250 and sender component240 (“Yes I like that”). The information and the resulting update onBob's screen are shown in FIG. 1 e.

Alice then accepts the final form of the provisional text by clickingaccept button 80 (step 450). Her action causes conversation acceptingcomponent 260 to generate an automatic message for transmission bysender component 240 to Bob (step 460). On Bob's screen a message isdisplayed indicating that Alice has accepted the most recent version ofthe text (see FIG. 1 e). The message appears on Bob's screen as if it isfrom Alice but Alice's machine automatically generates the message asshown in the figure.

Note that in another embodiment, Alice does not specifically type textinto input window 70 which indicates her acceptance. Instead only theauto-generated message is sent to Bob when Alice activates the Acceptbutton.

In one embodiment, when Alice clicks on the Accept button the instantmessaging window remains open for further discussion if required. Alicemay also select different text in the master document, choose Conferagain, and if she selects Bob again then that existing instant messagingwindow with Bob is simply be re-used. The conversation would carry onfrom where they left off but with the new text under discussion.

Further note that during collaboration Alice may decide to overruleBob's suggestions. In this instance, Alice informs Bob via a standardinstant message. She then selects (via selector component 285) theversion of the text that she likes from the conversation window andclicks the accept button.

Thus once the accept button has been selected, text parser component 270parses the conversation displayed in conversation window 60 in order todetermine how to modify the word processing document (step 470).

FIG. 3 d illustrates, in accordance with a preferred embodiment, theprocessing involved in parsing the conversation, At step 500 it isdetermined whether the conversation only contains one piece of delimitedtext. If this is the case, then this text is the relevant text (step550). If the answer is no, then a determination is made (step 520) as towhether Alice has selected any text herself (see above). If she has,then this text is identified as the relevant text (step 560). Otherwise,the most recent version of delimited text is selected by the parsercomponent (step 540). (This will be the last occurrence of textsurrounded by the special delimiters.)

The text parser component then extracts the selected text forincorporation into the word processing document. In some circumstances,the selected text may equate to the original text—in which case theparser does not make a replacement. In one embodiment, there may be a“disagree” button that could be selected in order, for example, eitherto leave the original text as it is, or to take a previous suggestion.

The extracted text is retrieved by text provider component 280 and isprovided to word processor 10 (step 480). Text Replacer component 150removes the special delimiters, deletes the selected text and replacesthe deletion with the final version of the text (step 490).

The discussion thus far assumes a standard instant messaging client atthe recipient (Bob's machine). It would however be possible to have aseparate display area for storing the provisional text on Bob's machineand also on Alice's machine. Alternatively, special formatting tagscould be used to distinguish the provisional text from the generalconversation. These would be used by the parser component Alice'smachine. The provisional text should still be displayed to thecollaborators in a unique fashion—e.g. using bold or italics. In bothcases the collaborators would not need to enter the special delimiters.In addition, Bob could be given the authorisation to indicate to Alicewhat text should be used in place of the provisional text—this wouldrequire modification to Bob's instant messaging software.

The invention has been described in terms of two people collaborating.It should be appreciated however that the invention is also applicableto collaboration with a number of people at the same time on aparticular piece of text. For example, when Alice selects the “Confer”option she can choose more than one name to open up an instant messagingconference with (e.g., by selecting names in a drop down buddy list).She can still choose Accept at the end to decide which text to accept.

Whilst the invention has been described in terms of a word processingapplication, it should be appreciated that the invention is not limitedto such. It is equally applicable to other applications and theirassociated documents; for example presentations, spreadsheets etc.

Further, the invention is not simply limited to the use of an instantmessaging application. Other messaging applications such as email or SMScould be used.

1. A method for a first client to facilitate collaborative editing of a document with a second client, the document containing data of a first data type and being accessible by a first application for processing said first data type, the method comprising: using the first application to identify a portion of the document for review; extracting the identified portion; providing the identified portion to an application for processing data of a second type at the first client, the application being a messaging application; identifying a second client for performing the review; sending the identified portion via the messaging application to the identified second client; receiving comments back from the identified second client, the comments conforming to the messaging application's protocol; interpreting the comments; and updating the document if appropriate.
 2. The method of claim 1, wherein the step of receiving comments back from the identified second client comprises receiving text suggested as a replacement for the identified portion.
 3. The method of claim 2, wherein the suggested text is enclosed by delimiters.
 4. The method of claim 2 further comprising determining whether to accept the suggested text as a replacement for the identified portion.
 5. The method of claim 4 further comprising responsive to a negative determination, permitting further collaboration with the identified second client.
 6. The method of claim 2, wherein the step of interpreting the comments comprises: parsing the comments to identify the suggested text; and extracting the suggested text, the method further comprising: replacing the identified portion with the suggested text.
 7. The method of claim 1 further comprising receiving an indication from the second client that particular text suggested as a replacement for the identified portion is to be accepted.
 8. An apparatus for a first client to facilitate collaborative editing of a document with a second client, the document containing data of a first data type and being accessible by a first application for processing said first data type, the apparatus comprising: means for using the first application to identify a portion of the document for review; means for extracting the identified portion; means for providing the identified portion to an application for processing data of a second type at the first client, the application being a messaging application; means for identifying a second client for performing the review; means for sending the identified portion via the messaging application to the identified second client; means for receiving comments back from the identified second client, the comments conforming to the messaging application's protocol; means for interpreting the comments; and means for updating the document if appropriate.
 9. The apparatus of claim 8, wherein the means for receiving comments back from the identified second client comprises means for receiving suggested text as a replacement for the identified portion.
 10. The apparatus of claim 9, wherein the suggested text is enclosed by delimiters.
 11. The apparatus of claim 9 further comprising means for determining whether to accept the suggested text as a replacement for the identified portion.
 12. The apparatus of claim 11, wherein the means for determining whether to accept the suggested text comprises means for receiving an indication from a user of the first client as to whether the suggested text has been accepted by the user.
 13. The apparatus of claim 8 further comprising means, responsive to a negative determination, for permitting further collaboration with the identified second client.
 14. The apparatus of claim 9, wherein the means for interpreting the comments further comprises: means for parsing the comments to identify the suggested text; and means for extracting the suggested text, the apparatus further comprising: means for replacing the identified portion with the suggested text.
 15. A computer program stored on a computer readable medium, comprising program means for using the first application to identify a portion of the document for review; program means for extracting the identified portion; program means for providing the identified portion to an application for processing data of a second type at the first client, the application being a messaging application; program means for identifying a second client for performing the review; program means for sending the identified portion via the messaging application to the identified second client; program means for receiving comments back from the identified second client, the comments conforming to the messaging application's protocol; program means for interpreting the comments; and program means for updating the document if appropriate.
 16. The computer program according to claim 15, wherein the program means for receiving comments back from the identified second client comprises program means for receiving suggested text as a replacement for the identified portion.
 17. The computer program according to claim 16, further comprising program means for determining whether to accept the suggested text as a replacement for the identified portion.
 18. The computer program according to claim 17, wherein the program means for determining whether to accept the suggested text comprises program means for receiving an indication from a user of the first client as to whether the suggested text has been accepted by the user.
 19. The computer program according to claim 15, further comprising program means, responsive to a negative determination, for permitting further collaboration with the identified second client.
 20. The computer program according to claim 15, wherein the program means for interpreting the comments comprises: program means for parsing the comments to identify the suggested text; program means for extracting the suggested text; and program means for replacing the identified portion with the suggested text. 